078262935e4454eef6eee60cf1cf63680b0273e5,api-gateway/src/main/java/com/redhat/coolstore/api_gateway/ApiGatewayRoute.java,ApiGatewayRoute,configure,#,41

Before Change


            .options("/checkout/{cartId}")
            .route().id("checkoutCartOptionsRoute").end().endRest()
            .options("/{cartId}/{itemId}/{quantity}")
            .route().id("cartAddDeleteOptionsRoute").end().endRest()

            .post("/checkout/{cartId}").description("Finalize shopping cart and process payment")
                .param().name("cartId").type(RestParamType.path).description("The ID of the cart to process").dataType("string").endParam()
                .outType(ShoppingCart.class)

After Change


            .options("/checkout/{cartId}")
            .route().id("checkoutCartOptionsRoute").end().endRest()
            .options("/{cartId}/{tmpId}")
            .route().id("cartSetOptionsRoute").end().endRest()
            .options("/{cartId}/{itemId}/{quantity}")
            .route().id("cartAddDeleteOptionsRoute").end().endRest()

            .post("/checkout/{cartId}").description("Finalize shopping cart and process payment")
                .param().name("cartId").type(RestParamType.path).description("The ID of the cart to process").dataType("string").endParam()
                .outType(ShoppingCart.class)
                .route().id("checkoutRoute")
                .hystrix().id("Cart Service (Checkout Cart)")
                    .removeHeaders("CamelHttp*")
                    .setBody(simple("null"))
                    .setHeader(Exchange.HTTP_METHOD, HttpMethods.POST)
                    .setHeader(Exchange.HTTP_URI, simple("http://cart-service:8080/api/cart/checkout/${header.cartId}"))
                    .to("http4://DUMMY")
                .onFallback()
                    // TODO: improve fallback
                    .transform().constant(null)
                .end()
                .setHeader("CamelJacksonUnmarshalType", simple(ShoppingCart.class.getName()))
                .unmarshal().json(JsonLibrary.Jackson, ShoppingCart.class)
            .endRest()

            .get("/{cartId}").description("Get the current user's shopping cart content")
                .param().name("cartId").type(RestParamType.path).description("The ID of the cart to process").dataType("string").endParam()
                .outType(ShoppingCart.class)
                .route().id("getCartRoute")
                .hystrix().id("Cart Service (Get Cart)")
                    .removeHeaders("CamelHttp*")
                    .setBody(simple("null"))
                    .setHeader(Exchange.HTTP_METHOD, HttpMethods.GET)
                    .setHeader(Exchange.HTTP_URI, simple("http://cart-service:8080/api/cart/${header.cartId}"))
                    .to("http4://DUMMY")
                .onFallback()
                    // TODO: improve fallback
                    .transform().constant(null)
                .end()
                .setHeader("CamelJacksonUnmarshalType", simple(ShoppingCart.class.getName()))
                .unmarshal().json(JsonLibrary.Jackson, ShoppingCart.class)
            .endRest()

            .delete("/{cartId}/{itemId}/{quantity}").description("Delete items from current user's shopping cart")
                .param().name("cartId").type(RestParamType.path).description("The ID of the cart to process").dataType("string").endParam()
                .param().name("itemId").type(RestParamType.path).description("The ID of the item to delete").dataType("string").endParam()
                .param().name("quantity").type(RestParamType.path).description("The number of items to delete").dataType("integer").endParam()
                .outType(ShoppingCart.class)
                .route().id("deleteFromCartRoute")
                .hystrix().id("Cart Service (Delete Cart)")
                    .removeHeaders("CamelHttp*")
                    .setBody(simple("null"))
                    .setHeader(Exchange.HTTP_METHOD, HttpMethods.DELETE)
                    .setHeader(Exchange.HTTP_URI, simple("http://cart-service:8080/api/cart/${header.cartId}/${header.itemId}/${header.quantity}"))
                    .to("http4://DUMMY")
                .onFallback()
                    // TODO: improve fallback
                    .transform().constant(null)
                    .end()
                .setHeader("CamelJacksonUnmarshalType", simple(ShoppingCart.class.getName()))
                .unmarshal().json(JsonLibrary.Jackson, ShoppingCart.class)
            .endRest()

            .post("/{cartId}/{itemId}/{quantity}").description("Add items from current user's shopping cart")
                .param().name("cartId").type(RestParamType.path).description("The ID of the cart to process").dataType("string").endParam()
                .param().name("itemId").type(RestParamType.path).description("The ID of the item to add").dataType("string").endParam()
                .param().name("quantity").type(RestParamType.path).description("The number of items to add").dataType("integer").endParam()
                .outType(ShoppingCart.class)
                .route().id("addToCartRoute")
                .hystrix().id("Cart Service (Add To Cart)")
                    .removeHeaders("CamelHttp*")
                    .setBody(simple("null"))
                    .setHeader(Exchange.HTTP_METHOD, HttpMethods.POST)
                    .setHeader(Exchange.HTTP_URI, simple("http://cart-service:8080/api/cart/${header.cartId}/${header.itemId}/${header.quantity}"))
                    .to("http4://DUMMY")
                .onFallback()
                    // TODO: improve fallback
                    .transform().constant(null)
                    .end()
                .setHeader("CamelJacksonUnmarshalType", simple(ShoppingCart.class.getName()))
                .unmarshal().json(JsonLibrary.Jackson, ShoppingCart.class)
            .endRest()

            .post("/{cartId}/{tmpId}").description("Transfer temp shopping items to user's cart")
                .param().name("cartId").type(RestParamType.path).description("The ID of the cart to process").dataType("string").endParam()
                .param().name("tmpId").type(RestParamType.path).description("The ID of the temp cart to transfer").dataType("string").endParam()
                .outType(ShoppingCart.class)
                .route().id("setCartRoute")
                .hystrix().id("Cart Service (Set Cart)")
                .removeHeaders("CamelHttp*")
                .setBody(simple("null"))
                .setHeader(Exchange.HTTP_METHOD, HttpMethods.POST)
                .setHeader(Exchange.HTTP_URI, simple("http://cart-service:8080/api/cart/${header.cartId}/${header.tmpId}"))
                .to("http4://DUMMY")
                .onFallback()
                // TODO: improve fallback